Actionの前提条件を設定する
Eggplant DAIでモデルActionの前提条件を設定することができます。これにより、特定の条件が満たされない限り、モデルの実行中にActionを呼び出すことができません。例えば、テキストを先にフィールドに入力するとアクティブになるアプリケーションのボタンがあるかもしれません。この場合、ボタンのActionに前提条件を使用して、フィールドのテキストが先に入力されていなければモデルから呼び出されないようにすることができます。もう一つの使用例は、特定のstateから呼び出すべきではないグローバルActionがある場合などです。
Actionの前提条件を設定するには3つのステップが必要です:
Parameterを作成する
前提条件のParameterは、他のParameterと同じように作成されます。Parameterは、stateParameterまたはグローバルParameterにすることができます。選択は、Actionを実行する前にモデル実行が満たすべき条件に基づいています。
前提条件が同じstate内の別のActionに基づいている場合、stateParameterを使用します。例えば、ユーザー名とパスワードを入力するとOKボタンがクリック可能になるログイン画面があるかもしれません。それぞれが別のActionとしてモデルを作成した場合、ユーザー名のActionとパスワードのActionの両方をOKのActionの前提条件として設定できます。これには、stateParameterを使用します。
ログイン画面のEggplant DAIモデルstate
モデルの一部で起こるが、他の複数の場所でActionをブロックする可能性があることに対する前提条件としてグローバルParameterを使用することができます。例えば、ユーザーがシステムにログインして一部の機能にアクセスする必要があるが、他の機能にはアクセスする必要がないかもしれません。この場合、ログインActionが行われるときにグローバルParameterを設定し、それをログインユーザーを必要とするモデル内の各Actionの前提条件として使用します。
currentStateParameterは、現在のstateの名前を含む特別な事前定義されたグローバルParameterです。特定のstateからグローバルActionが呼び出されるのを防ぐためにこのParameterを使用することができます。例えば、QuitのグローバルActionがある場合、そのActionがInitialstateから呼び出されるのをブロックすることができます。
Parameterの作成についての詳細は、State Parameters Sectionを参照してください。
評価条件を設定する
Actionにアクセスする前の前提条件を満たすために、Parameterの評価条件を設定します。Parameterの値が正しくない場合、該当するActionはモデル実行から呼び出すことができません。
評価条件はAction PropertiesタブのPreconditions for this Action to Executeセクションで設定します。評価条件を設定するための手順は以下の通りです:
-
前提条件を適用したいModelタブのActionを選択します。右側のペインでAction Propertiesタブがフォーカスになるはずです。Preconditions for this Action to Executeセクションでは、選択されたActionに利用可能なすべてのstateParameterとグローバルParameterの一覧が表示されます。
-
評価したいParameterを選択し、Conditionリストメニューから評価条件を選択します。
-
Valueフィールドに、評価する値を入力または選択します。入力する値は、Typeフィールドに表示されているParameterのタイプに一致しているべきです。
注意していただきたいのは、単一のActionに対して複数のParameterに前提条件を設定できるということです。
Action PropertiesタブのPreconditionsセクションについての詳細は、Preconditions for this Action to Execute Sectionを参照してください。
Parameter値の設定または変更
前提条件の評価は、Parameterが特定の値を持つことに基づいています。Action PropertiesタブのSet and Generate Parameter Valuesセクションを使用して、モデルで特定のActionに遭遇したときにParameterの値を変更することができます。モデル実行中にParameter値を設定または変更するには、以下の手順を実行します:
-
Parameter値の変更をトリガーするActionをModelワークスペースで選択します。右ペインにはAction Propertiesタブが表示されるべきです。Set and Generate Parameter Valuesセクションでは、選択されたActionで利用可能なすべてのstateParameterとグローバルParameterのリストが表示されます。
-
変更したいParameterを選択し、Operationリストメニューから変更タイプを選択します:
- set: 特定の値を選択するためにこのオプションを使用します。前提条件のためにこの機能を使用している場合、このオプションが最も適している可能性があります。
- generate: Parameterタイプに適した基準に基づいて値を生成したい場合にこのオプションを使用します。
-
Valueフィールドに、Parameterに設定する値を入力または選択します。入力する値は、Typeフィールドに表示されているParameterのタイプに一致しているべきです。
Set and Generate Parameter Valuesセクションを使用してParameter値を変更する他に、SenseTalkスニペットにParameterを渡してその値を影響させ、それらのParameterをActionの前提条件として使用することもできます。
Action PropertiesタブのGenerate Parameterセクションについての詳細は、Set and Generate Parameter Valuesを参照してください。